<?php

if ( ! defined('BASEPATH')) exit('No direct script access allowed');
require_once BASE_PATH.'application/controllers/base'.EXT;

class Consejero extends Base {

    public function __construct()
    {
        parent::__construct();
        $this->load->model('funcionesauxiliaresdao');
        $this->load->model('mybodydao');
        $this->load->model('misembarazosdao');
        $this->load->model('embarazadacaractsdao');
        $this->load->model('consejoscaractsdao');
        $this->load->model('consejossemanadao');
        $this->load->model('consejosdao');
        $this->load->model('usuariosdao');
		$this->load->model('caracteristicadao');
    }

    public function index()
    { 
        $data = array(
                      "estado"  => "Nothing to do"
                     );
        echo json_encode($data);
    }

    public function mybody($id_embarazada){
        $misembarazos =	$this->misembarazosdao->getFechaInicial($id_embarazada);
        $num_semanas  =	$this->funcionesauxiliaresdao->getSemana($misembarazos[0]['fecha_inicio']);
		$ultima_semana=	$this->mybodydao->get_last_id();
		if($num_semanas > $ultima_semana) {
			$num_semanas = $ultima_semana;
		}
		$mybody	=   $this->mybodydao->getMyBody($num_semanas);

        $data = array(
                      "titulo"      => $mybody[0]['titulo'],
                      "imagen"      => $mybody[0]['imagen'],
                      "descripcion" => $mybody[0]['descripcion'],
                     );
        echo json_encode(array($data));
    }

    public function tips($id_embarazada){

        $charcsOfPregnant =   $this->embarazadacaractsdao->getCharacteristics($id_embarazada);
        $charcs = array();
        foreach($charcsOfPregnant as $charc){
          array_push($charcs, $charc['id_caracteristica']);
        }

        //Obtener caracteristicas dinamicos de la embarazada y anadirlos a $charcs
        $numberOfPregnancies  = $this->misembarazosdao->getNumberOfPregnancies($id_embarazada);
        if($numberOfPregnancies == 1){
            array_push($charcs, "5");
        }
        if ($numberOfPregnancies > 1) {
            array_push($charcs, "6");
        }
        $fecha_nacimiento = $this->usuariosdao->getFechaNacimiento($id_embarazada);
        $age    =   $this->funcionesauxiliaresdao->getAge($fecha_nacimiento);
        if($age > 35) {
			array_push($charcs, "8");
        }
        if($age < 45) {
			array_push($charcs, "9");
        }
        

        $lastPregnancy	= 	$this->misembarazosdao->getFechaInicial($id_embarazada);
        $currentWeek 	= 	$this->funcionesauxiliaresdao->getSemana($lastPregnancy[0]['fecha_inicio']);
        $tipsOfWeek 	=	$this->consejossemanadao->getIdsTips($currentWeek);
        $tipsOfWeekStack = array();
        foreach($tipsOfWeek as $tip) {
            array_push($tipsOfWeekStack, $tip['id_consejo']);
        }
        
        $tipsAndCharcs	=	$this->consejoscaractsdao->getCharcs($tipsOfWeekStack);
        $filteredTips = array();
        foreach($tipsAndCharcs as $element){
            if( in_array($element['id_caracteristica'], $charcs) ) {
                array_push($filteredTips, $element['id_consejo']);
            }
        }
		
		$data = array();
		foreach($filteredTips as $id_tip) {
		     $caracteristica = $this->consejosdao->get_description($id_tip);
		     $temp['descripcion']	= $caracteristica[0]['descripcion'];
		     $id_characteristic = $this->consejoscaractsdao->get_idcaracteristica($id_tip); 
		     $descripcion_caracteristica = $this->caracteristicadao->get_descripcion($id_characteristic[0]['id_caracteristica']);
		     $temp['razon']	 = $descripcion_caracteristica[0]['descripcion'];
		     array_push($data, $temp);
		     }
		
        echo json_encode($data);
      
    }
}

?>